from common.common_operation import CommonOperation
from common.read_xmind import ReadXmind


class UpFileOperation(CommonOperation):

    def generate_case(self, model_data, data_step, need_data, case_data):
        # TODO 是否必填
        self.required(need_data, model_data, data_step, '', case_data)
        # TODO 处理格式要求，写了【文件格式】就处理，不写就不处理
        if '文件格式' in need_data.keys():
            """处理需求中的格式"""
            for i in need_data['文件格式']['value'].split(','):
                case_title = "{},{}格式为{}，{}".format(model_data['用例标题'], data_step, i,
                                                    self.case_tip(model_data, need_data, '成功'))
                self.step_common(model_data, data_step, '{}格式文件'.format(i), '成功', case_data, case_title)
            """处理规定格式之外的数据"""
            case_title = "{},{}格式为【{}】，{}".format(model_data['用例标题'], data_step, '规定格式之外的文件',
                                                  self.case_tip(model_data, need_data['文件格式'], '失败'))
            self.step_common(model_data, data_step, '规定格式之外的文件', '失败', case_data, case_title)
        else:
            case_title = "{},{}(任意文件)，{}".format(model_data['用例标题'], data_step,
                                                 self.case_tip(model_data, need_data, '成功'))
            self.step_common(model_data, data_step, '任意文件', '成功', case_data, case_title)

        # TODO 处理文件大小
        if '文件大小' in need_data.keys():
            for i in ['大于', '小于', '等于']:
                if i == '大于':
                    case_title = "{},{}:{}{}文件，{}".format(model_data['用例标题'], data_step, i, need_data['文件大小']['value'],
                                                          self.case_tip(model_data, need_data['文件大小'], '失败'))

                    self.step_common(model_data, data_step, '{}{}'.format(i, need_data['文件大小']['value']), '失败',
                                     case_data, case_title)
                else:
                    case_title = "{},{}:{}{}文件，{}".format(model_data['用例标题'], data_step, i, need_data['文件大小']['value'],
                                                          self.case_tip(model_data, need_data, '成功'))

                    self.step_common(model_data, data_step, '{}{}'.format(i, need_data['文件大小']['value']), '成功',
                                     case_data, case_title)

    def case(self):
        return self.operation_type('上传', self.generate_case)


def result():
    return UpFileOperation().case()


if __name__ == '__main__':
    import json

    ReadXmind(path=r'C:\Users\admin\Desktop\NAVS.xmind', sheet='模板').processed_data()
    test = result()
    print(json.dumps(test, ensure_ascii=False))
